# -*- coding: utf-8 -*-
import sys
import json
import twitter_text # easy_install twitter-text-py
import twitter
from login_twitter import login
# Para examplo, https://twitter.com/dani_dauster/status/351039541601255424
TWEET_ID = '351039541601255424'

def getEntidades(tweet):
    # Extrai o conteudo da tag text que contem o conteudo do  tweet
    extractor = twitter_text.Extractor(tweet['text'])

    entidades = {}
    entidades['usuarios_mencionados'] = []
    # a função extract_mentioned_screen_names_with_indices() da classe Extractor
    # faz o parsing pelo texto procurando entidades e as retornas    
    for um in extractor.extract_mentioned_screen_names_with_indices():
        entidades['usuarios_mencionados'].append(um)

    entidades['hashtags'] = []
    # a função extract_hashtags_with_indices() da classe Extractor
    # faz o parsing pelo texto procurando hashtags e as retornas   
    for dois in extractor.extract_hashtags_with_indices():
        # Mudança da tag Hashtag para Text para ficar padronizado
        dois['text'] = dois['hashtag']
        del dois['hashtag']
        
        entidades['hashtags'].append(dois)

    entidades['urls'] = []
    # a função extract_urls_with_indices() da classe Extractor
    # faz o parsing pelo texto procurando urls e as retorna    
    for url in extractor.extract_urls_with_indices():
        entidades['urls'].append(url)

    return entidades

# Efetua login com Twitter
t = login()

# Consulta RestFull passado o id do Tweet
tweet = t.statuses.show(id=TWEET_ID)

# Faz o Parsing por entidades,hashtag e urls
entidades={}
entidades['Entidades']= getEntidades(tweet)

print json.dumps(entidades, indent=4)
